package com.atguigu.gulimall.utils;


import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.io.FileOutputStream;

@Slf4j
public class FileUtil {

    /**
     * 上传文件
     *
     * @param file     文件对应的byte数组流   使用file.getBytes()方法可以获取
     * @param filePath 上传文件路径，不包含文件名
     * @param fileName 上传文件名
     * @throws Exception
     */
    public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {
        log.info("上传文件接收的文件路径是【{}】", filePath);
        File targetFile = new File(filePath);
        if (!targetFile.exists()) {
            targetFile.mkdirs();
        }
        log.info("上传文件接收的文件路径是【{}】", filePath + "/" + fileName);
        try (FileOutputStream out = new FileOutputStream(filePath + "/" + fileName)) {
            out.write(file);
            out.flush();
        }
    }

    public static void createDirectory(String dir) {

        File directory = new File(dir);
        //director.mkdir()方法只能创建一级目录，其父级目录必须存在，否则会有异常
        if (directory.mkdir()) {
            log.info("Success using alternative 1");
        } else {
            //使用mkdirs()方法可以创建多层级目录
            if (directory.mkdirs()) {
                log.info("Success using alternative 2");
            }
            else {
                log.info("Failed using both alternative 1 and alternative 2");
            }
        }
    }


}
